<%--
    一：JSP实际上就是一个servlet,为什么呢？
    1.index.jsp在浏览器访问敲下回车键时，会自动翻译生成index_jsp.java文件，index.java文件又会编译生成index_jsp.class文件
    2.index_jsp类继承了HttpJspBase,而HttpJspBase继承HttpServlet。因此index_jsp是一个Servlet类
    3.Jsp的生命周期和Servlet的完全相同

    二：JSP第一次访问时会较慢，为什么？
    第一次访问时，需要以下操作：
    1>要把JSP文件翻译成java文件 2>Java文件要编译生成class字节码文件 3>通过class去创建Servlet对象
    4>通过Servlet对象调用init方法初始化 5>通过Servlet调用service方法
    第二次访问时：
    直接调用单例Servlet对象的service方法即可

    三：怎么指定JSP字符集?
    <%@ contentType="text/html;charset=utf-8"%>

    四：JSP中写的内容，会翻译到Servlet类的Java文件的哪里?
    1>直接在jsp中写的内容，会被翻译到servlet类的service方法里的out.write("")这里，被Java程序当作字符串打印到浏览器上
      在JSP中写的html/css/javascript代码，对于jsp这个servlet类来说只是一个字符串，但是jsp把这个字符串打印到浏览器后，
      浏览就就对html/scc/js解释执行。

    五：在jsp中编写Java程序，会写到由jsp生成的Java代码的哪里？
    1> <% java语句; %>，在这个符号里写java代码，会被翻译到Servlet类的service方法内，要记住，在这个符号里写时，正在方法里面写代码
        在service方法当中定义的变量不能用private等方法修饰(可以生成java程序，但是编译无法通过)，即成员方法应该放在service方法之外，那怎么实现呢？
        <% java语句; %> Java代码中，怎么将内容输出到浏览器？看2.jsp可以利用Jsp九大内置对象之一的out，输出到浏览器上
    2> <%! 成员变量; 成员方法; 静态变量; 静态方法; 静态代码块等%>。
       这种方法一般不用，因为在service方法外面写静态变量或者成员变量，会存在线程安全问题。
       因为jsp就是servlet，servlet是单例，多并发条件下，这个静态变量和实例变量一旦有修改操作，必然存在线程安全问题。

    六：<%= java代码 %>这个会被翻译成：out.print();在service方法中 可以输出一个具体的值
       注意，如果是静态的字符串，直接在jsp里写就行，不需要写在这些符号里面

    七：既然Jsp的本质是一个Servlet，那Servlet和Jsp有什么不同？
    职责不同：
        Servlet职责是：收集数据(Servlet的强项是逻辑处理，业务处理，连接数据库，获取数据)
        Jsp：展示数据
--%>


